package com.zzyl.nursing.controller.member;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zzyl.common.core.domain.AjaxResult;
import com.zzyl.common.core.page.TableDataInfo;
import com.zzyl.nursing.domain.NursingProject;
import com.zzyl.nursing.service.INursingProjectService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 小程序端-护理项目接口（供家属查询购买）
 */
@RestController
@RequestMapping("/member/orders/project") // 小程序端专属路径
@Api(tags = "小程序-护理项目接口")
public class MemberNursingProjectController {

    @Autowired
    private INursingProjectService nursingProjectService;

    /**
     * 分页查询护理项目列表（小程序端）
     * 接口路径：/member/orders/project/page
     * 请求方式：GET
     */
    @ApiOperation("分页查询护理项目列表")
    @GetMapping("/page")
    public TableDataInfo page(
            @RequestParam(required = false) String name,
            @RequestParam(defaultValue = "1") Integer pageNum,
            @RequestParam(defaultValue = "10") Integer pageSize,
            @RequestParam(required = false) Integer status) {

        // 1. 调用服务层获取分页数据（不变）
        IPage<NursingProject> page = nursingProjectService.selectProjectPage(pageNum, pageSize, name, status);

        // 2. 用 TableDataInfo 包装数据（直接填充扁平结构的字段）
        TableDataInfo tableDataInfo = new TableDataInfo();
        tableDataInfo.setRows(page.getRecords()); // 列表数据（rows）
        tableDataInfo.setTotal(page.getTotal()); // 总条数（total）
        tableDataInfo.setCode(200); // 状态码（code）
        tableDataInfo.setMsg("查询成功"); // 消息（msg）

        // 3. 直接返回 TableDataInfo，无需用 AjaxResult 包装
        return tableDataInfo;
    }
    /**
     * 根据ID查询护理项目详情（小程序端）
     * 接口路径：/member/orders/project/{id}
     * 请求方式：GET
     */
    @ApiOperation("根据ID查询护理项目详情")
    @GetMapping("/{id}")
    public AjaxResult getById(@PathVariable Long id) {
        NursingProject project = nursingProjectService.selectNursingProjectById(id);
        return AjaxResult.success(project); // 非泛型返回，直接传入实体对象
    }

}
